/**
 * 查看城市的天气请况
 * 
 * @type
 */
var weather = {
	baseColor : '#eee',
	getId : function() {
		return 'weather';
	},
	init : function() {
		return this.getView();
	},
	getStore : function() {
		var me = this;
		var myStore = Ext.create('Ext.data.Store', {
					fields : [{
								name : 'temperature',
								type : 'Number'
							}, {
								name : 'dateDay'
							}, {
								name : 'city'
							}, {
								name : 'dayornight'
							}, {
								name : 'weather'
							}, {
								name : 'weekDay'
							}, {
								name : 'wind'
							}, {
								name : 'winddir'
							}, {
								name : 'date'
							}],
					proxy : {
						type : 'ajax',
						url : 'GetWeatherReport',
						reader : {
							type : 'json',
							root : 'datas'
						}
					},
					listeners : {
						'beforeload' : function(_store) {
							// 在数据加载之前设置向后台发送的参数
							var new_params = { // 参数
								type : 'all'
							};
							Ext.apply(_store.proxy.extraParams, new_params);
						}
					},
					autoLoad : true
				});
		return myStore;
	},
	getView : function() {
		var me = this;
		var date = new Date();
		var year = date.getFullYear() + '年';
		var store = me.getStore();
		var citystore = Ext.create('Ext.data.Store', {
					fields : ['name', 'value'],
					proxy : {
						type : 'ajax',
						url : 'GetLikeDdServlet',
						reader : {
							type : 'json',
							root : 'datas',
							totalProperty : 'totalCount'
						}
					},
                    pageSize: 10,
					listeners : {
						'beforeload' : function(_store) {
							// 在数据加载之前设置向后台发送的参数
							var new_params = { // 参数
								ddkey : '天气县'
							};
							Ext.apply(_store.proxy.extraParams, new_params);
						}
					},
					autoLoad : false
				});
		var chart = Ext.create('Ext.chart.Chart', {
					xtype : 'chart',
					shadow : true,
					animate : {
						easing : 'bounceOut',
						duration : 750
					},
					store : store,
					style : 'background:#fff',
					axes : [{
								type : 'Numeric',
								position : 'left',
								fields : ['temperature'],
								minimum : -20,
								maximum : 50,
								label : {
									renderer : Ext.util.Format
											.numberRenderer('0,0')
								},
								title : '温度',
								grid : {
									odd : {
										stroke : '#555'// 外边框线色
									},
									even : {
										stroke : '#555'// 内部线色
									}
								}
							}, {
								type : 'Category',
								position : 'bottom',
								fields : ['dateDay'],
								title : year,
								renderer : function(lbl) {
									return lbl;
								}
							}],
					series : [{
						type : 'line',// 图表类型,线
						axis : 'left',// 指定Y轴 是左边这条
						highlight : true,// 鼠标移上去是否高亮显示
						width : 140,
						height : 28,
						tips : {
							trackMouse : true,
							width : 130,
							height : 140,
							renderer : function(storeItem, item) {
								var temp = '日期：' + year + storeItem.get('date')
										+ '<br/>' + '城市：'
										+ storeItem.get('city') + '<br/>'
										+ storeItem.get('weekDay') + '<br/>'
										+ storeItem.get('dayornight') + '<br/>'
										+ '天气' + storeItem.get('weather')
										+ '<br/>' + '温度：'
										+ storeItem.get('temperature') + '℃'
										+ '<br/>' + '风力：'
										+ storeItem.get('wind') + '<br/>'
										+ '风向：' + storeItem.get('winddir');
								this.setTitle(temp);
							}
						},
						label : {
							display : 'insideEnd',
							'text-anchor' : 'middle',
							field : 'temperature',
							orientation : 'horizontal',
							fill : '#000',
							font : '17px Arial',
							renderer : function(value) {
								return value + '℃';
							}
						},
						style : {
							opacity : 0.95
						},
						xField : 'dateDay',
						yField : 'temperature',
						listeners : {
							'itemmouseup' : function(item) {
								me.selectMonthItem(chart, item);
							}
						}
					}]
				});

		var pp = Ext.create('Ext.panel.Panel', {
			border : false,
			layout : 'fit',
			tbar : [{
				text : '保存报表',
				iconCls : 'icon-save',
				handler : function() {
					Ext.MessageBox.confirm('下载提示', '是否下载该报表?',
							function(choice) {
								if (choice == 'yes') {
									chart.save({
												url : 'SvgToPng',
												type : 'image/png'
											});
								}
							});
				}
			}, {
				text : '重新加载',
				iconCls : 'icon-refresh',
				handler : function() {
					store.load();
				}
			}, {
				xtype : 'searchfield',
				width : 400,
				
				fieldLabel : '查询指定城市天气',
				labelWidth : 110,
				store : store
			}, {
				xtype : 'combo',
				store : citystore,
				displayField : 'name',
				typeAhead : false,
				hideLabel : true,
				hidden : true,
				hideTrigger : true,
				minChars : 1,
				width : 400,
				listConfig : {
					loadingText : '查询中...',
					emptyText : '没有查找到该城市',
					getInnerTpl : function() {
						return '<a class="search-item" href="javascript:void(0)">'
								+ '<h3><span>{name}</span></h3>' + '</a>';;
					}
				},
				pageSize : 10
			}],
			items : chart
		});
		return pp;

	},
	selectMonthItem : function(chart, item) { // 处理选中某一个Item的自定义函数
		var me = this;
		var series = chart.series.get(0); // 获取series
	}
}